package memento;

import java.util.List;

import logica.Entidad;
import logica.Jerarquia;
import logica.JerarquiaException;
import logica.SinNombreException;

public class MementoJerarquiaLogica extends Memento {

	private String nombre;
	private List<Entidad> entidadesEspecializadas;
	private boolean esParticionCompleta;
	private boolean haySolapamiento;

	public MementoJerarquiaLogica(Jerarquia guardable)
	{
		super(guardable);

		this.nombre = guardable.getNombre();
		this.entidadesEspecializadas= guardable.getEntidadesEspecializadas();
		this.esParticionCompleta= guardable.esParticionCompleta();
		this.haySolapamiento = guardable.haySolapamiento();
	}

	@Override
	public void cargarMemento() 
	{
		Jerarquia jerarquia = (Jerarquia) super.getGuardable();
		
		try 
		{
			jerarquia.setNombre(nombre);
			jerarquia.setEsParticionCompleta(esParticionCompleta);
			jerarquia.setHaySolapamiento(haySolapamiento);
			jerarquia.setEntidadEspecilizada(entidadesEspecializadas);
		
		}
		//ninguna de estas exceptions podría pasar ya que se cuando se pidieron los datos eran válidos.
		// tener cuidado con el de las entidades externas ya q si se la borra del modelo, ahí si podría haber problemas.

		catch (SinNombreException e) {
			e.printStackTrace();
		} catch (JerarquiaException e) {
			e.printStackTrace();
		}
	}

}
